import {MyArticle, MyLikeArticle, MyCollectsArticle, ArticleSearch, DelArticle} from '@/api'
//准备actions对象——响应组件中用户的动作
const actions = {
    // 获取我的文章列表
    async getMyArticle(state, obj) {
        let info = await MyArticle(obj)
        if (info['code'] === 200) {
            state.commit('setMyArticle', info)
        }
    },
    // 获取我的喜欢文章列表
    async getMyLikeArticle(state, obj) {
        let info = await MyLikeArticle(obj)
        if (info['code'] === 200) {
            state.commit('setMyLikeArticle', info)
        }
    },
    // 获取我的收藏文章列表
    async getMyCollectsArticle(state, obj) {
        let info = await MyCollectsArticle(obj)
        if (info['code'] === 200) {
            state.commit('setMyCollectsArticle', info)
        }
    },
    // 文章搜索
    async getArticleSearch(state, condition_obj) {
        let info = await ArticleSearch(condition_obj)
        if (info['code']) {
            state.commit('setSearchArticle', info)
        }
    },
    // 删除文章
    async delArticle(state, obj) {
        let info = await DelArticle(obj['nid'])
        return info
    }
}
//准备mutations对象——修改state中的数据
const mutations = {
    // 修改我的文章列表
    setMyArticle(state, info) {
        state.MyArticle = info
    },
    // 修改我的喜欢文章列表
    setMyLikeArticle(state, info) {
        state.MyLikeArticle = info
    },
    // 修改我的喜欢文章列表
    setMyCollectsArticle(state, info) {
        state.MyCollectsArticle = info
    },
    // 修改搜索的文章列表
    setSearchArticle(state, info) {
        state.SearchArticle = info
    }
}
//准备state对象——保存具体的数据
const state = {
    MyArticle: [],    // 我的文章列表
    MyLikeArticle: [],  // 我的喜欢文章列表
    MyCollectsArticle: [],   // 我的收藏文章列表
    SearchArticle: [],   // 搜索过后的文章列表
}

// 准备getters对象——对数据进行加工
const getters = {
    MyArticle(state) {
        if (state.SearchArticle.length !== 0) {
            return state.SearchArticle['articles']
        } else {
            return state.MyArticle
        }
    },
    MyLikeArticle(state) {
        if (state.SearchArticle.length !== 0) {
            return state.SearchArticle['articles']
        } else {
            return state.MyLikeArticle
        }

    },
    MyCollectsArticle(state) {
        if (state.SearchArticle.length !== 0) {
            return state.SearchArticle['articles']
        } else {
            return state.MyCollectsArticle
        }
    },
}
export default {
    actions,
    mutations,
    state,
    getters,
    namespaced: true
}